↳ Prolog
↳ PrologToPiTRSProof
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
preorder_dl_in_gg(nil, -(X, X)) → preorder_dl_out_gg(nil, -(X, X))
preorder_dl_in_gg(tree(L, X, R), -(.(X, Xs), Zs)) → U2_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
U2_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U3_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(R, -(Ys, Zs))) → preorder_dl_out_gg(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_gg(T, -(Xs, []))) → preorder_out_ga(T, Xs)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
preorder_dl_in_gg(nil, -(X, X)) → preorder_dl_out_gg(nil, -(X, X))
preorder_dl_in_gg(tree(L, X, R), -(.(X, Xs), Zs)) → U2_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
U2_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U3_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(R, -(Ys, Zs))) → preorder_dl_out_gg(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_gg(T, -(Xs, []))) → preorder_out_ga(T, Xs)
PREORDER_IN_GA(T, Xs) → U1_GA(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
PREORDER_IN_GA(T, Xs) → PREORDER_DL_IN_GG(T, -(Xs, []))
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GG(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GG(L, -(Xs, Ys))
U2_GG(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_GG(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U2_GG(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → PREORDER_DL_IN_GG(R, -(Ys, Zs))
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
preorder_dl_in_gg(nil, -(X, X)) → preorder_dl_out_gg(nil, -(X, X))
preorder_dl_in_gg(tree(L, X, R), -(.(X, Xs), Zs)) → U2_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
U2_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U3_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(R, -(Ys, Zs))) → preorder_dl_out_gg(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_gg(T, -(Xs, []))) → preorder_out_ga(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PREORDER_IN_GA(T, Xs) → U1_GA(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
PREORDER_IN_GA(T, Xs) → PREORDER_DL_IN_GG(T, -(Xs, []))
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GG(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GG(L, -(Xs, Ys))
U2_GG(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_GG(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U2_GG(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → PREORDER_DL_IN_GG(R, -(Ys, Zs))
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
preorder_dl_in_gg(nil, -(X, X)) → preorder_dl_out_gg(nil, -(X, X))
preorder_dl_in_gg(tree(L, X, R), -(.(X, Xs), Zs)) → U2_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
U2_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U3_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(R, -(Ys, Zs))) → preorder_dl_out_gg(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_gg(T, -(Xs, []))) → preorder_out_ga(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GG(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GG(L, -(Xs, Ys))
U2_GG(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → PREORDER_DL_IN_GG(R, -(Ys, Zs))
preorder_in_ga(T, Xs) → U1_ga(T, Xs, preorder_dl_in_gg(T, -(Xs, [])))
preorder_dl_in_gg(nil, -(X, X)) → preorder_dl_out_gg(nil, -(X, X))
preorder_dl_in_gg(tree(L, X, R), -(.(X, Xs), Zs)) → U2_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
U2_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U3_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(R, -(Ys, Zs))) → preorder_dl_out_gg(tree(L, X, R), -(.(X, Xs), Zs))
U1_ga(T, Xs, preorder_dl_out_gg(T, -(Xs, []))) → preorder_out_ga(T, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → U2_GG(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
PREORDER_DL_IN_GG(tree(L, X, R), -(.(X, Xs), Zs)) → PREORDER_DL_IN_GG(L, -(Xs, Ys))
U2_GG(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → PREORDER_DL_IN_GG(R, -(Ys, Zs))
preorder_dl_in_gg(nil, -(X, X)) → preorder_dl_out_gg(nil, -(X, X))
preorder_dl_in_gg(tree(L, X, R), -(.(X, Xs), Zs)) → U2_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(L, -(Xs, Ys)))
U2_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(L, -(Xs, Ys))) → U3_gg(L, X, R, Xs, Zs, preorder_dl_in_gg(R, -(Ys, Zs)))
U3_gg(L, X, R, Xs, Zs, preorder_dl_out_gg(R, -(Ys, Zs))) → preorder_dl_out_gg(tree(L, X, R), -(.(X, Xs), Zs))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
PREORDER_DL_IN_GG(tree(L, X, R), -) → U2_GG(R, preorder_dl_in_gg(L, -))
PREORDER_DL_IN_GG(tree(L, X, R), -) → PREORDER_DL_IN_GG(L, -)
U2_GG(R, preorder_dl_out_gg) → PREORDER_DL_IN_GG(R, -)
preorder_dl_in_gg(nil, -) → preorder_dl_out_gg
preorder_dl_in_gg(tree(L, X, R), -) → U2_gg(R, preorder_dl_in_gg(L, -))
U2_gg(R, preorder_dl_out_gg) → U3_gg(preorder_dl_in_gg(R, -))
U3_gg(preorder_dl_out_gg) → preorder_dl_out_gg
preorder_dl_in_gg(x0, x1)
U2_gg(x0, x1)
U3_gg(x0)
From the DPs we obtained the following set of size-change graphs: